import datetime
from pathlib import Path
from loguru import logger
import datetime
from pathlib import Path

# 生成当前时间的字符串，格式为"年-月-日_时-分-秒"，用于创建唯一的任务目录
# 作用：确保每次运行生成的报告目录名称唯一，避免覆盖历史记录
TIME_SMAP = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")

# 获取当前脚本文件所在的目录路径（__file__表示当前文件本身）
# 作用：以当前文件为基准，构建相对路径，避免硬编码绝对路径导致的移植问题
PATH = Path(__file__).parent

# 定义测试用例目录路径：当前目录下的"case"文件夹
# 作用：统一管理测试用例文件的存放位置
CASE_DIR = PATH / 'case'

# 定义报告根目录路径：当前目录下的"reports"文件夹
# 作用：作为所有测试报告的总存放目录
REPORT_PATH = PATH / 'reports'

# 创建报告根目录（如果不存在则创建，exist_ok=True表示已存在时不报错）
# 作用：确保报告目录存在，避免后续写入文件时出现路径不存在的错误
REPORT_PATH.mkdir(exist_ok=True)

# 定义当前任务的报告目录：报告根目录下以当前时间命名的文件夹
# 作用：为每次测试运行创建独立的目录，区分不同时间的测试结果
TASK_DIR = REPORT_PATH / f'{TIME_SMAP}'

# 创建当前任务的报告目录（不存在则创建，默认exist_ok=False，目录已存在会报错）
# 作用：初始化本次测试的专属目录
TASK_DIR.mkdir()

# 定义测试数据目录：当前任务目录下的"data"文件夹
# 作用：存放本次测试过程中生成或使用的临时数据（如请求参数、响应结果等）
DATA_DIR = TASK_DIR / 'data'

# 定义HTML报告目录：当前任务目录下的"html"文件夹
# 作用：专门存放生成的HTML格式测试报告
HTML_DIR = TASK_DIR / 'html'

# 定义日志目录：当前任务目录下的"log"文件夹
# 作用：集中存放本次测试的日志文件
LOG_PATH = TASK_DIR / 'log'

# 创建日志目录（不存在则创建）
# 作用：确保日志文件有存放目录，避免日志写入失败
LOG_PATH.mkdir()

# 定义日志文件路径：日志目录下的"pytest.log"文件
# 作用：指定本次测试的日志输出文件
LOG_FILE = LOG_PATH / 'pytest.log'

# 向日志对象添加该日志文件作为输出目标
# 作用：配置日志系统，将测试过程中的日志信息写入指定文件
logger.add(LOG_FILE)


SCREEN_PATH = TASK_DIR / 'screenshot'
SCREEN_PATH.mkdir()